xnormal

您所在的位置:网站首页 艾滋 日记 下载 xnormal

xnormal

#xnormal| 来源: 网络整理| 查看: 265

Hello .大家好

今天是2019年07月17日星期三

今天我们分享(软件篇)

Xnormal大家并不陌生是一款非常实用的次世代游戏制作工具,该款工具最大的特色就是烘托速度快,几乎是MAX.MAYA等软件的几倍速度,拥有着超丰富的游戏制作功能,界面整洁、操作简单,支持中英文显示界面,几乎所有的贴图都包括一个MIN/MAN渲染选项,可以用来控制光线的明暗,游戏制作必备软件。

既然是烘培法线工具我们先简单介绍下法线的原理稍后在介绍软件。

一、法线贴图的的原理

法线贴图(Normal map)

首先研究基于世界坐标的法线贴图(world space normal map),虽不常用,但是基础。法线贴图是用来记录物体表面不同的入射点的法线矢量的图像数据信息。它是用一个RGB彩色图像来记录不同点的法线XYZ坐标数据的。规则是R通道记录X轴的数据,G通道记录的是Y轴数据,B通道记录的是Z轴的数据。

法线贴图的出现,是为了低面数的模型模拟出高面数的模型的"光照信息"。(前几篇谈过,低模+法线贴图增加模型表面细节的优化方法)光照信息最重要的当然是光入射方向与入射点的法线夹角,法线贴图本质上就是记录了这个夹角的相关信息,光照的计算与某个面上的法线方向息息相关。

1、下图是说:用烘焙的方法,把高模表面的光照信息(法线方向)和低模进行“映射”计算,再通过烘焙方法把XYZ坐标数据转化为RGB数据储存到一个图像的过程。

2、下图是说:渲染器从低模的材质中读出法线贴图,然后把法线贴图每点的RGB图像信息转化为XYZ法线方向,还原高模的表面信息。也就是说,有了法线贴图,渲染器不管真实的低模是什么 样子,它就相信法线贴图的光照信息。这就是一个很好的视觉魔术。

二、法线贴图的分类

1、world space normalmap:如果这个法线方向,是处于世界坐标中的(world space),那称为world space norma。渲染器从贴图里解压出来后,就可以直接用了,效率很高。但是有个缺点,这个world space normal 是固定了,如果物体没有保持原来的方向和位置,那原来生成的normal map就作废了。

2、object space normamap:如果是处于物体本身局部坐标中的,那称为object space normal。它从贴图里解压,还需要乘以model-view矩阵转换到世界坐标,或者转换到其他坐标取决于计算过程及需求。object space normal生成的贴图,物体可以被旋转和位移,基本让人满意。但仍有一个缺点,就是一张贴图只能对应特定的一个模型,模型不能有变形(deform)。

3、tangent space normal map:

在object space的基础上,高模上object space内的某点法线(不会是world space的,否则旋转就露相),乘以这个矩阵,即得到tangent space内的法线方向,再把这个值映射到rgb空间,存为贴图。

O-TBN =

现在我们可以分析为什么tangent space法线贴图偏蓝色了,因为对于高模上的面来说,因为精度太高(面很小,而且周围的面相对它的方向很平滑),所以这个面渲染时计算机认为这个面的"弯曲"程度很小,即面上各个点插值得来的法线相互间偏差很小,基本跟整个面的垂直方向不会差太多。因此在tangent space里,这些法线都跟z轴偏差较小,而z轴是被保存在贴图里的B(蓝色通道)里,所以贴图显示出来的颜色就偏蓝了。

总之,world space norma 好用,但是要求最高;object space normamap不错,要求不能变形;tangent space normal map:最佳,旋转、变形都可以,最常用。tangent space normal map适应变形的这种能力,使它不仅能够应用在原来的模型上,甚至可以应用在变形严重的不同模型上。即法线贴图有一定的脱离原来模型使用的能力。

作者:DIGITALMAN

链接:https://www.jianshu.com/p/b7e67bf767d9来源:简书

为使法线贴图工作,我们需要为每个fragment提供一个法线。像diffuse贴图和specular贴图一样,我们可以使用一个2D纹理来储存法线数据。2D纹理不仅可以储存颜色和光照数据,还可以储存法线向量。这样我们可以从2D纹理中采样得到特定纹理的法线向量。

由于法线向量是个几何工具,而纹理通常只用于储存颜色信息,用纹理储存法线向量不是非常直接。如果你想一想,就会知道纹理中的颜色向量用r、g、b元素代表一个3D向量。类似的我们也可以将法线向量的x、y、z元素储存到纹理中,代替颜色的r、g、b元素。法线向量的范围在-1到1之间,所以我们先要将其映射到0到1的范围:

将法线向量变换为像这样的RGB颜色元素,我们就能把根据表面的形状的fragment的法线保存在2D纹理中。教程开头展示的那个砖块的例子的法线贴图如下所示:

这会是一种偏蓝色调的纹理(你在网上找到的几乎所有法线贴图都是这样的)。这是因为所有法线的指向都偏向z轴(0, 0, 1)这是一种偏蓝的颜色。法线向量从z轴方向也向其他方向轻微偏移,颜色也就发生了轻微变化,这样看起来便有了一种深度。例如,你可以看到在每个砖块的顶部,颜色倾向于偏绿,这是因为砖块的顶部的法线偏向于指向正y轴方向(0, 1, 0),这样它就是绿色的了。

在一个简单的朝向正z轴的平面上,我们可以用这个diffuse纹理和这个法线贴图来渲染前面部分的图片。要注意的是这个链接里的法线贴图和上面展示的那个不一样。原因是OpenGL读取的纹理的y(或V)坐标和纹理通常被创建的方式相反。链接里的法线贴图的y(或绿色)元素是相反的(你可以看到绿色现在在下边);如果你没考虑这个,光照就不正确了(译注:如果你现在不再使用SOIL了,那就不要用链接里的那个法线贴图,这个问题是SOIL载入纹理上下颠倒所致,它也会把法线在y方向上颠倒)。加载纹理,把它们绑定到合适的纹理单元,然后使用下面的改变了的像素着色器来渲染一个平面:

这里我们将被采样的法线颜色从0到1重新映射回-1到1,便能将RGB颜色重新处理成法线,然后使用采样出的法线向量应用于光照的计算。

原文地址有更多介绍

https://learnopengl.com/Advanced-Lighting/Normal-Mapping

三、软件介绍

首先xNormal支持中文设置之前一直不知道目前我用的是3.19.3

有些地方翻译不准确软件用到地方不是很多,熟悉英文直接用就好。也可以打开界面点击左边插头按钮弹出对话框在language(语言)选择简体字然后关闭这样整个界面就变成简体中文了。

xnormal烘焙流程

1.准备模型:烘培需要对应好的高模和低模,模型最好象普通渲染样保证匹配,如果有多个部件交叉叠放一起,需要分开否则可能出现部分错误

xNormal烘培是基于优秀的GI光线,不需要我们对光线阴影色调操心而保证准确。

调用的模型支持多种格式,最常用和通用的是OBJ,用MAX的还可以使用SBM格式,包含支持的更多信息,也方便导入导出。

2. 装载模型:第一项装载高模,第二项装载低模,顺序应该是不影响的且可以装载多个,进行选择使用。

3、烘培设置:选择文件保存路径。图片大小,需要的烘培项。经过测试烘培最好的是法线和AO(翻译的文字为四周锁柱?),法线有几种形式,可以对应不同的引擎和作为其他贴图的参考。出血量、抗锯齿等普通情况下可以保存默认。点击下角最大的引起地图按钮,等待几分钟,烘培完成。

4、各种贴图转换工具,可以得到细节、法线、AO、高光等贴图

使用方法

1、右侧的按钮可以导入高模以及低模,这款软件可以将高模中的信息烘焙到低模的各种贴图中,右键可以加载和移除模型(参照流程第一张图)

2、在低模的选项smooth normal有三种选择,use exported normals可以识别三维软件中指定的模型的软硬边,average normals会将所有的法线软化,harden normals会将法线硬边化,一般这个选项都选择第一个use exported normals

3、Maxium frontal/rear ray distance 可以决定低模读取超过自身范围多少的高模的信息,这个数值稍微大一点可以获得更多的高模细节,但是该数值过小或者过大会出错,use cage可以在三维软件中编辑导出低模的cage文件在xnormal中使用,能得到比较精确的烘焙

4、Bake前要在baking option中指定输出贴图的路径

5、在选择高模的板块中,有base texture to bake的选项,可以将在其他软件中给高模上好的颜色bake到低模中

6、size决定输出贴图的尺寸;edge pedding代表贴图超出UV边界多少个像素(这个值得大小根据贴图的尺寸来,一般不宜过大,贴图稍微超出UV边界一点可以避免一些错误黑边的出现);bucket size是xnormal在烘焙贴图过程中渲染方框的大小,本人习惯设置成512;renderer可以有两种模式, default bucket renderer是CPU渲染,速度上比较慢,optix/CUDA renderer是GPU渲染,速度很快但比较容易出错;antialising是贴图抗锯齿效果,开高了比较慢 (如果贴图是2048像素想要达到好的抗锯齿效果,可以先烘焙4096抗锯齿为1的贴图,然后Photoshop改图片大小至2048,会比直接在xnormal中开高抗锯齿烘焙2048的贴图要快)

7、点击图中绿色的图标可以打开每种贴图的选项,在normal map的选项中swizzle coordinates代表计算烘焙法线贴图的坐标系,maya和marmoset用的是Y+,3ds max和udk用的是Y-; tangent space是法线的类型,如果不选这个选项xnormal会生成world space normal

8、AO贴图烘焙的选项中,rays是AO烘焙的采样值,该数值越高贴图质量越好同时烘焙速度越慢;spread angle是通过角度去计算AO,该数值过大或者过小都会导致AO贴图效果出错,一般150是一个比较好的数值;allow 100% occlusion一般关掉,开启有的时候会出错;ignore backface hits开启;jitter是可以给AO加噪点,关掉比较好

烘培AO.我们进行设置对于两个红框中颜色 不能太黑也不能太白,这样烘出来的效果会好点设置好后就直接点击Generate Maps,进行AO的烘培。

以下内容根据使用情况而定

9、bake AO的时候需要调整一下模型的cage,要打开3D viewer去观察,选择run windowed,窗口化显示,然后点lauch viewer

10、show cage可以显示cage,然后edit cage可以对cage进行调整,cage global extrusion 可以整体的放大cage直到它完全盖过高模,selection extrusion只向法线方向外移动选中的点,鼠标中键可以选择点,全部调整好后可以点击右边的save meshes存储的时候会有两种不同的文件类型,选择SBM能得到比较好的效果在128rays的情况下bake出来的ao会比较多噪点,可以考虑将rays调高。

如果想要改变模型的尺寸的话可以在下方default mesh scale处改,这样每回导入的模型都继承了相同的尺寸信息,不用每次都手动调整

11、另外一种使用cage的方式是在external cage file这里导入一个obj文件,可以在maya中在原始的低模上复制一个新模作为cage,可以对该cage进行缩放以及调点但是模型的布线以及UV不能被改动

12、Xnormal bake出来的normal map最好使用photoshop中的xnormal插件 xnormal normalized这样可以使normal map更加干净并且避免了一些细微的错误填写图片摘要(选填)

xnormal软件不是很复杂用几次就能熟练掌握!

点击:阅读原文  提取码: qaur 

好 本期分享就到这里 我们下期见 拜拜!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3